package com.wanmait.zaisousuo.mapper;

import com.wanmait.zaisousuo.pojo.CompanyApproval;
import com.wanmait.zaisousuo.pojo.Userinfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserinfoMapper {
    void loginCountIncrease(Integer id);

    void publishedCountIncrease(Integer id);

    void askCountIncrease(Integer id);

    void answerCountIncrease(Integer id);

    void praiseCountIncrease(Integer id);

    void collectCountIncrease(Integer id);

    void commentCountIncrease(Integer id);

    int deleteByPrimaryKey(Integer id);

    int insert(Userinfo record);

    int insertSelective(Userinfo record);

    Userinfo selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Userinfo record);

    int updateByPrimaryKey(Userinfo record);

    Userinfo findByEmail(String email);

    void register(Userinfo userinfo);

    void insertByPhone(Userinfo userinfo);

    Userinfo login(@Param("username") String username,@Param("password") String password);

    Userinfo findByEmailAndPhone(@Param("email") String email,@Param("phoneNumber") String phoneNumber);

    Userinfo findPassword(String username);

    Userinfo findByPhone(String phoneNumber);

    void update(Userinfo userinfos);

    void updatePassword(@Param("password") String passwords, @Param("username") String username);

    Userinfo checkNickname(String nickname);

    void updateNickname(@Param("nickname")String nickname,@Param("id") Integer id);

    void updateEmail(@Param("email") String email,@Param("id") Integer id);

    void updatePhoneNumber(@Param("phoneNumber") String phoneNumber, @Param("id") Integer id);

    void modPassword(@Param("password") String password, @Param("id") Integer id);

    void updateHeadPic(Userinfo userinfo);

    List<Userinfo> findVip(@Param("userStates") Integer userStates);

    void updateVipStatus(@Param("id") Integer id,@Param("flag") Boolean flag);

    void updateUserType(@Param("id") Integer id,@Param("flag") Boolean flag);

    void updateCompany(@Param("id") int id,@Param("userinfoId") Integer userinfoId);

    List<Userinfo> findAllCompany(@Param("userStates")Integer userStates);


    void updateUserType2(@Param("id") Integer id,@Param("flag") Boolean flag);

    List<Userinfo> findAll();

    void banUser(Integer id);

    void recover(Integer id);

    Integer selectUserTypeId(Integer id);
}